package com.syh.jn.scm.domain.operation.repository.system;

import com.syh.core.ddd.infrastructure.repository.AggregateRepository;
import com.syh.jn.scm.domain.operation.entity.system.Permission;
import com.syh.jn.scm.dto.operation.system.permission.PermissionVo;

import java.util.List;

public interface PermissionRepository extends AggregateRepository<Permission,Long> {

	/**
	 * 根据roleId 获取权限
	 * @param roleId
	 * @return
	 */
	public List<Permission> getPermissionByRoleId(Long roleId);

	/**
	 * 根据系统权限类型获取权限列表
	 * @param systemType
	 * @return
	 */
	public List<Permission> getPermissionBySystemType(Short systemType);

	/**
	 * 根据菜单获取权限列表
	 * @param menuId
	 * @return
	 */
	public List<PermissionVo> getPermissionByMenuId(Long menuId);

	public Long addDtoWithNoCheck(Permission entity);

	public void batchDiscardPermission(List<Long> ids);
}
